/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.pokemon.services;

import com.pokemon.dto.BadgeDTO;
import java.util.List;

/**
 *
 * @author Branislav Paulis
 */
public interface BadgeService {
    /**
     * Adds badge into the database.
     * 
     * @param badge badge to be added
     */
    BadgeDTO addBadge(BadgeDTO badge);

    /**
     * Extract badge from database according its id.
     * 
     * @param id is id of badge which we want get from the database
     * @return badge acoording id, null while id can not be found
     */
    BadgeDTO getBadge(Long id);
    
    /**
     * Updates badge in the database.
     * 
     * @param badge badge to be updated
     */
    BadgeDTO updateBadge(BadgeDTO badge);
    
    /**
     * Removes badge from the database.
     * 
     * @param badge badge to be removed
     */
    BadgeDTO removeBadge(BadgeDTO badge);
    
    /**
     * Method finds all trainers in database and returns them
     * If there are no trainers in the database, method returns empty list.
     * 
     * @return list of all trainers in the database
     */
    List<BadgeDTO> getAllBadges();
}